\documentclass[12pt,a4paper]{article}
\usepackage{fontspec, xunicode, xltxtra,xeCJK,graphicx,enumerate}
\renewcommand{\figurename}{图}
\setmainfont{仿宋}
\author{王茂斌}
\title{EDU电子教室支持跨网段方案及评估}
\begin{document}
\maketitle

\section{问题描述}
当前EDU仅支持一个网段间的连接，主要原因是使用组播/广播通信机制，无法跨网段通信。
\section{技术重点}
在不影响组播/广播整体通信框架的前提下，将连接扩散到其他网段
\section{方案及评估}
\subsection{路由转发方案}
此方案是在每个网段添加一个路由转发装置，子网1的控制端直接将发往子网2的消息发送给子网2的路由转发装置，由子网2的路由转发装置通过组播/广播转发给子网2的学生端。

\begin{figure}[htbp]
\centering\includegraphics[width=0.6\paperwidth]{idea1}
\caption{路由转发方案}
\label{图1}
\end{figure}

如\ref{图1}所示，图中控制端在发送消息前检测是否发往本网段，如果发往本网段，则直接发送，如果发往其他网段或者组播/广播，则发往路由装置，由路由装置通过组播或广播发往各网段的学生端。

学生端在发送消息前也做相同的检测，如果发往自身网段，则直接发送，否则发往路由转发装置。由路由转发装置发往教师端。

\begin{figure}[htbp]
\centering\includegraphics[width=0.6\paperwidth]{idea2}
\caption{路由转发装置工作原理}
\label{图2}
\end{figure}

对于路由转发装置，工作原理如\ref{图2}

路由转发装置对接收到的消息做判断，如果是发往单个IP的，则直接转发给单个IP，否则投递组播/广播包。

\newpage

\subsubsection{方案存在的问题及解决办法}
\begin{enumerate}[(1)]
\item 在学生端主动登录或者教师端扫描时，如何确定网段？
\subitem 这个可由用户配置要连接的网段
\item 路由转发装置IP如何确定？
\subitem 确定网段后，枚举IP发送单播包（如果不是第一次连接此网段，可以枚举除本网段的学生端列表），记录第一个有回应的转发装置IP作为默认转发装置，并通知此装置，然后与此装置建立心跳连接。对于后续的转发装置不予回应。接收到教师端回应的转发装置记录教师端IP，回复确认包，进入转发状态。超时未接收到教师端回应的转发装置恢复初始化状态。
\item 如果路由转发装置意外崩溃，如何做应急处理？
\subitem 在教师端存储的有某网段所有活动转发装置，即学生端IP信息，在超时检测不到默认转发装置心跳包后，尝试连接此网段其他的学生端的转发装置。
\item 学生端如何主动连接教师端？（是否需要主动连接？）
\subitem 学生端记录曾经连接过的教师端IP，学生端启动后，通过路由转发装置不断扫描这些IP。
\item 学生演示时，学生端与学生端之间如何通信？
\subitem 学生之间相互通信时（不光是学生演示，可能还会有其他通信），消息发往教师端，教师端判断消息来源以及消息去向，决定处理还是转发，以及转发给哪些网段。
\end{enumerate}

\subsubsection{方案优点}
\begin{enumerate}[(1)]
\item 对现有系统改动较少
\item 耦合性小，可做成单独模块
\item 对系统效率影响小
\end{enumerate}

\subsubsection{方案缺点}
\begin{enumerate}[(1)]
\item 无法实现第一台跨网段学生端自动登录（一个全新的网段第一次登陆需要手动）
\item 消息经过多次中转，延时增大
\item 不同网段之间学生通信都要经过教师端，教师端负载较大
\end{enumerate}

\subsubsection{在已有系统中需要做的改动以及时间估计}

\begin{enumerate}[(1)]
\item 包结构中添加单播和组播标记
\item 教师端、学生端增加网段检测，来源、目的检测
\item 包结构中注明发送端和接收端IP信息（如果是多播接收端标记被忽略）
\item 教师端与学生端发送消息时增加判断是否发往本网段（如果是广播消息，不用判断，直接发给路由转发装置）（3-5天）
\item 学生端新增路由转发装置（10-15天）
\end{enumerate}

\subsubsection{需要注意的点}
\begin{enumerate}[(1)]
\item 路由转发装置的端口应与频道号相关
\item 路由转发装置直接收单播包，但发送广播和单播包
\item 路由转发装置彼此也需要通信，如在进行学生演示的时候，此方案通过教师端转发实现间接通信。
\end{enumerate}

\subsubsection{总结}
此方案整个网络呈两层树形结构，实现难度相对较小，在性能方面只有学生端大量广播或彼此通信时下降比较严重。在单网段与原系统性能一致。方案可行。

\subsection{路由转发+子网互联方案}
这个方案在路由转发方案基础上增加了子网互连，针对学生端之间的通信做了优化，减轻教师端压力。

\begin{figure}[htbp]
\centering\includegraphics[width=0.6\paperwidth]{idea3}
\caption{路由转发+子网互联工作原理}
\label{图3}
\end{figure}

系统如图\ref{图3}所示。教师端端与路由转发装置在网络中扮演的角色相同，在需要发给其他网段实，可以直接发送给该网段的路由转发装置（教师端也相当于一个路由转发装置）。

\subsubsection{方案优点}
该方案继承了路由转发方案所有优点，另外减轻了教师端的负担。

\subsubsection{方案缺点}
该方案需要每个路由转发装置维护一张表，记录每个网段的路由转发地址，而且需要主控端在特定时机对每个网段的路由转发地址进行更新与同步（事实上，同时连接的网段一般都不多，所以更新路由转发地址不会对教师端造成很大的负担），实现更为复杂。

\subsubsection{时间估计}
该方案相对于路由转发方案来说，实现难度增大，预计时间为：
\begin{enumerate}[(a)]
\item 教师端、学生端对包的重新补充设计，对包的来源去向进行判断，主控端转发等。（5-7天）
\item 路由转发装置实现（15-20天）
\item 集成对接（3-5天）
\end{enumerate}

\subsubsection{总结}
该方案对路由转发方案进行改进，整个网络呈网状结构，各网段之间实现完全连接，降低了主控端通信负担。

\subsection{结论}
根据以上分析，虽然路由转发+子网互联方案实现难度较大，预计实现周期较长，但是其网络拓扑结构和性能都比单纯的路由转发方案要好，因此应该选用路由转发+子网互联方案。

\end{document}
